import router from "./router";
import { Message } from "element-ui";
import NProgress from "nprogress"; // 进度条
import "nprogress/nprogress.css"; // 进度条样式

NProgress.configure({ showSpinner: false }); // 进度条配置
const whiteList = ["/login", "/redirect"]; // 免登录白名单
import defaultSettings from "@/settings";
const pageTitle = defaultSettings.pageTitle;
const getPageTitle = function(pageName) {
  if (pageName) {
    return `${pageTitle} - ${pageName}`;
  }
  return `${pageTitle}`;
};
router.beforeEach(async (to, from, next) => {
  // 进度条开始
  NProgress.start();

  // 设置页面标题
  document.title = getPageTitle(to.meta.title);

  // 判断用户是否已登录
  const hasToken = window.sessionStorage.getItem("token");

  if (hasToken) {
    if (to.path === "/login") {
      // 如果已登录，则重定向到主页
      Message.warning("请勿重复登录!");
      next({ path: "/" });
      NProgress.done();
    } else {
      next();
      NProgress.done();
    }
  } else {
    if (whiteList.indexOf(to.path) !== -1) {
      // 在免登录白名单中，直接进入
      next();
    } else {
      Message.error("请先登录");
      // 其他没有访问权限的页面将被重定向到登录页面
      next(`/login?redirect=${to.path}`);
      NProgress.done();
    }
  }
  //   return next();
});
router.afterEach(() => {
  // 进度条结束
  NProgress.done();
});
